What Is a Cabinet File?

A cabinet is a single file, with the extension .cab, that stores compressed files in a library. Cabinet files are used to organize installation files that are copied to the userÆs system. A large compressed file can be spread over several .cab files.

For a number of years, Microsoft has used .cab files to compress software that was distributed on disks. Originally, these files were used to minimize the number of floppy disks shipped with a product. Today, .cab files are used to reduce the file size and the associated download time for Web content that is found on the Internet or on corporate intranet servers.

One file in the cabinet is typically an .inf file, which provides further installation information. The .inf file may refer to files in the .cab as well as to files at other URLs.

All custom .cab files that you include in your IEAK browser package must be digitally signed.

Digital signatures

A .cab file can be digitally signed like an ActiveX Control. A digital signature provides accountability for software developers. The signature associates a software vendor's name with a given file. A signature can be applied to a .cab using the new AuthenticodeĂ– technology included in the .cab toolset for software developers. This is an open standard.

Using .cab files can create a better end-user experience because multiple files can be downloaded with a single certificate presented to a user before downloading. Details of this technology are in the Internet Client SDK.

Digital signatures create a path to you (through the company that authorized your certificate), in the event that your component causes harm on a user's system. You can incorporate your signature when you use the Setup wizard to create an Internet setup routine for your control component.

Marking your control "safe for scripting" tells users a script on an HTML page can't use your control to cause harm to their computers or to obtain information they haven't supplied willingly.

Marking your control "safe for initialization" lets users know that there's no way an HTML author can harm their computers by feeding your control invalid data when the page initializes it.

Note
It is possible to use the "code-signing" utilities to sign entire .cab files using a digital certificate.

Cabinet files and IExpress tools

The IEAK contains a set of tools that help you build cabinet files and work with IExpress technology. You can also find tools and information in the Internet Client SDK.

The cabinet format

Each file compressed in a .cab is stored completely within a single folder. A cabinet file may contain one or more folders or portions of a folder. So, even if a compressed file does not fit in one .cab, it will be placed in one folder that spans multiple .cab files. Such a series of .cab files form a set. Each .cab file contains name information for the logically adjacent .cab files.

The .cab format used for downloading Microsoft Internet Explorer 4.0 components from the Internet is a non-proprietary format based on Lempel-Ziv compression.

Signing cabinet files

If a .cab file is signed, it is assumed that every file inside the cabinet is trusted, including .inf and .ini files. This has two advantages:

Creating digitally-signed cabinet files for Java classes

You can create digitally-signed .cab files for your Java classes by using the tools provided in the Cabinet Development Kit (in the Java SDK) and the Code Signing Kit (in the ActiveX SDK). Using .cab files for your classes speeds up downloading and makes installation more secure.